#ifndef LOCALIZATION_TEST_FAKE_LAMP_DETECTOR_H_
#define LOCALIZATION_TEST_FAKE_LAMP_DETECTOR_H_

#include <boost/random.hpp>
#include <libplayerc++/playerc++.h>
#include <core/macros.h>
#include <core/synced_lamp_centroids.h>

class FakeLampDetector {
public:
  FakeLampDetector(const std::vector<player_point_2d> &mapped_lamps,
          PlayerCc::SimulationProxy *simulation_proxy,
          SyncedLampCentroids *lamp_centroids);

  void operator()();
private:
  static const int kSleepTimeInMilliseconds = 100;

  boost::mt19937 random_generator_;
  boost::normal_distribution<> gaussian_distribution_;
  boost::variate_generator<boost::mt19937&, boost::normal_distribution<> > gaussian_generator_;

  SyncedLampCentroids *lamp_centroids_;

  const std::vector<player_point_2d> mapped_lamps_;
  PlayerCc::SimulationProxy *simulation_proxy_;

  DISALLOW_IMPLICIT_CONSTRUCTORS(FakeLampDetector);
};

#endif
